#! /bin/sh
#
 
PORT=11211
USER=memcached
MAXCONN=1024
OPTIONS=""
DAEMON=/usr/local/memcached/bin/memcached
 
RETVAL=0
prog="/usr/local/memcached/bin/memcached"
 
start_instance() {
        echo -n $"Starting $prog ($1): "
        start-stop-daemon --start --quiet --pidfile /var/run/memcached/memcached.$1.pid --exec $DAEMON -- -d -p $PORT -u $USER  -m $2 -c $MAXCONN -P /var/run/memcached/memcached.$1.pid $OPTIONS
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch /var/lock/memcached.$1
        PORT=`expr $PORT + 1`
}
 
stop_instance() {
        echo -n $"Stopping $prog ($1): "
        start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/memcached/memcached.$1.pid --exec $DAEMON
        RETVAL=$?
        echo
        if [ $RETVAL -eq 0 ] ; then
            rm -f /var/lock/memcached.$1
            rm -f /var/run/memcached/memcached.$1.pid
        fi
}
start () {
        # insure that /var/run/memcached has proper permissions
        mkdir -p /var/run/memcached
        if [ "`stat -c %U /var/run/memcached`" != "$USER" ]; then
                chown $USER /var/run/memcached
        fi
 
        start_instance default 64;
        #start_instance block 16;
        #start_instance content 128;
        #start_instance filter 128;
        #start_instance form 32;
        #start_instance menu 16;
        #start_instance page 8;
        #start_instance update 8;
        #start_instance views 8;
}
stop () {
        stop_instance default;
        #stop_instance block;
        #stop_instance content;
        #stop_instance filter;
        #stop_instance form;
        #stop_instance menu;
        #stop_instance page;
        #stop_instance update;
        #stop_instance views;
}
 
restart () {
        stop
        start
}
 
# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        status memcached
        ;;
  restart|reload|force-reload)
        restart
        ;;
  *)
        echo $"Usage: $0 {start|stop|status|restart|reload|force-reload}"
        exit 1
esac
 
exit $?
